package Test;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;


public class 二叉树层序交替 {

    List<List<Integer> > Print(TreeNode pRoot) {
        List<List<Integer>> res = new ArrayList<>();
        LinkedList<TreeNode> p = new LinkedList<>();
        p.add(pRoot);
        boolean left = true;
        while (!p.isEmpty()) {
            int sz = p.size();
            LinkedList<Integer> temp = new LinkedList<>();
            int i = 0;
            while (i < sz) {
                TreeNode node = p.pop();
                if (left) {
                    temp.add(node.val);
                } else {
                    temp.add(0, node.val);
                }

                if (node.left != null) {
                    p.add(node.right);
                }
                if (node.right != null) {
                    p.add(node.right);
                }
                i++;
            }
            if (left == true) {
                left = false;
            } else {
                left = true;
            }
            res.add(temp);

        }
     return  res;
    }

    }
